# Guardian

Данный сервис поможет вам контролировать платные подписки в ваших закрытых чатах или каналов.

- Создайте своего бота и вставьте токен в ЛК
- Установите тариф
- Добавьте своего бота в группу или канал
- Приглашайте подписчиков подписатся через вашего бота
- Пользователи оплачивают подписку TONcoin'ами
- Все подписки фиксируются в блокчейне TON
- Подписка не может быть отредактирована напрямую
- Подписка может быть продлена пополнением счета
- Пользователь или администратор может анулировать подписку
- При анулировании подписки пользователю вернется баланс пропорционально не израсходованному времени
- Администратор может вывести средства с подписки, только пропроционально израсходованному времени

## Use cases

![Use cases](https://www.plantuml.com/plantuml/svg/XLFDJl905DtFKqnOmGA-_RSWF8Y9gMqJIKen_GbnLo3gGXA96rVgmXUes8O9K7o5Cs_adUjO6vMmWSozv-UUGnZ4YHCbwIWGZfkC8zd2C_ROwWNMzBr2hcSepRibdLYciH_Lm2KAxA1GGUcfdkcCmNkTCTJnHiDGY3PUp18vAjPJ15oSX59VasobvnBlD2_eaqImWUeOSkmdfnVHqFM9_qIxBKipzmT1pvbmbbuIT6aK2QnqPey_I723SMpKxr4Ic6ZsBbGe9HJM76UghvZBOgW8TukIKBJ8KA8WGLgmOEGdQHIQU-dIdGbNP_tx02Tq_S1SG9ehbDoICkWrScEEL-nfrBH5mQKjy6PxcWoJSozo9auW11SkkscttwZF3WCQjl78YMPSZktIUdI-W7rRZ7rwD6XwcD-VBRXmVh5oCo2NJZvtt2PogM_Cx1ysd2N7jcEPrenVVACjiLxRZWIPoLwlaKl-btWWgHKxKXRnoMGKY_v6VEUeKKTqsFs8q66O40C_zEYVzG40)

## Компоненты

![Диаграмма компонентов](https://www.plantuml.com/plantuml/svg/XP112iCW44NtSmelq9mWX910Su1q9wMCHa9er32EzFgLrdGHATc8-j_poxI1aJZQ5K3sdiozhaUBnBrtJAYvQGG6eVFfON5n88U8D2teJk0vOo37g8AcHPqz7tOEGDu6qNbEGeVwQTpqHPNdbB5PpKnenSieWTkMg2jvnpyitG6aHLoQZvAtPT6Ub9zEsXyb9sTAdXOKdAYg8rIsPEXO0QrnKxJh6m00)

### Core Contract

Основной смарт-контракт, который реализует взаимоотношения между системой Guardian и администратором закрытого чата.
Запускается в единственном экзепляре.
Порождает GuardianContract'ы c каждым администратором чата.

### Guardian Contract

Контракт для управления системой подписок чата. Создается через CoreContract. Состояние управляется владельцем (администратором чата).
Контракт описывает стоимость подписки и пораждает SubscribeContract'ы c подписчиками.

### Subscribe Contract

Смарт-контракт для хранения данных о подписке пользователя